<?php

class Instituciones_Model_Informacionies extends Model_Cna {
	
	private $informacioniesTable;
	
	public function __construct() {
		parent::__construct();
		$this->informacioniesTable = new Instituciones_Model_DbTable_Informacionies();
	}
	
	/**
	 * Carga los datos de una institución
	 * @param $datos Array datos de búsqueda o registro en caso de no existir
	 * @return Array con los datos de la institución
	 */
	public function cargardatos($datos){
	    $row = $this->informacioniesTable->find($datos["codinstitucion"])->current();
		if($row) {
			return $row->toArray();
		} else {
			$key = $this->informacioniesTable->createRow($datos)->save();
			return $this->informacioniesTable->find($key)->current()->toArray();
		}
		
	}

	
	/**
	 * Almacena la información de la institución en CNA
	 * @param array $datos información de la institución
	 */
	public function guardarInformacionIES($datos) {
        $row = $this->informacioniesTable->find($datos["codinstitucion"])->current();
		if($row) {
			return $row->setFromArray($datos)->save();
		} else {
			$key = $this->informacioniesTable->createRow($datos)->save();
			return $key;
		}
	}
	/**
	 * Almacena la información de instalaciones físicas de la IES
	 * @param array $datos Los datos para el registro
	 */
	public function guardarInstalacionesFisicas($datos) {
	    $datos = $this->forceEmptyAsNull($datos);
		$this->informacioniesTable->getAdapter()->insert("instalacionesfisicas_cna", $datos);
	}
	/**
	 * Elimina la información de instalaciones físicas de la IES
	 * @param array $datos Los datos para el registro
	 */
	public function eliminarInstalacionesFisicas($codinstitucion) {
		$this->informacioniesTable->getAdapter()->delete("instalacionesfisicas_cna", "codinstitucion={$codinstitucion}");
	}
	/**
	 * Busca la información de instalaciones físicas de la IES
	 * @param array $datos Los datos para el registro
	 * @return array $datos
	 */
	public function buscarInstalacionesFisicas($codinstitucion) {
	    $datos = array();
		$array_instalaciones = $this->informacioniesTable->buscarInstalacionesFisicas($codinstitucion);
		foreach($array_instalaciones as $key => $valor){
		    
            if(!isset($datos["sumac_{$valor["codinstalacion"]}"])){
                $datos["sumac_{$valor["codinstalacion"]}"] = 0;
                $datos["sumaa_{$valor["codinstalacion"]}"] = 0;
            }
                
            $datos["sumac_{$valor["codinstalacion"]}"] += intval($valor["cantidad"]);
            $datos["sumaa_{$valor["codinstalacion"]}"] += intval($valor["area"]);
            
            if (!in_array($valor["codinstalacion"],array(30,31,50))){
                if(!isset($datos["sumae_{$valor["tipotenencia"]}"])){
                    $datos["sumae_{$valor["tipotenencia"]}"] = 0;
                    $datos["sumam_{$valor["tipotenencia"]}"] = 0;
                }
                $datos["sumae_{$valor["tipotenencia"]}"]+= intval($valor["cantidad"]);
                $datos["sumam_{$valor["tipotenencia"]}"]+= intval($valor["area"]);
            
    		    if(!isset($datos["sumae"])){
                    $datos["sumae"] = 0;
                    $datos["sumam"] = 0;
                }
            
                $datos["sumae"] += intval($valor["cantidad"]);
                $datos["sumam"] += intval($valor["area"]);
            }if (in_array($valor["codinstalacion"],array(30,31))){
                
               if(!isset($datos["sumape_{$valor["tipotenencia"]}"])){
                    $datos["sumape_{$valor["tipotenencia"]}"] = 0;
                    $datos["sumapm_{$valor["tipotenencia"]}"] = 0;
                }
                $datos["sumape_{$valor["tipotenencia"]}"]+= intval($valor["cantidad"]);
                $datos["sumapm_{$valor["tipotenencia"]}"]+= intval($valor["area"]);

    		    if(!isset($datos["sumape"])){
                    $datos["sumape"] = 0;
                    $datos["sumapm"] = 0;
                }

                $datos["sumape"] += intval($valor["cantidad"]);
                $datos["sumapm"] += intval($valor["area"]);
            }


            $datos["cantidad_{$valor["codinstalacion"]}_{$valor["tipotenencia"]}"]= intval($valor["cantidad"]);
		    $datos["area_{$valor["codinstalacion"]}_{$valor["tipotenencia"]}"]= intval($valor["area"]);
		}
		return $datos;
	}
	
	/**
	 * Almacena la información de recursos bibliográficos y logísticos de la institución
	 * @param array $datos información del recurso
	 */
	public function guardarRecursosIES($datos) {
	    $this->informacioniesTable = new Instituciones_Model_DbTable_Recursosies();
	    if(isset($datos["codrecursoies"]) && !empty($datos["codrecursoies"])) {
            $row = $this->informacioniesTable->find($datos["codrecursoies"])->current();
			return $row->setFromArray($datos)->save();
		} else {
		    unset($datos["codrecursoies"]);
			$key = $this->informacioniesTable->createRow($datos)->save();
			return $key;
		}
	}
	/**
	 * Busca los datos de un recurso
	 * @param integer $codrecursoies Código del recurso
	 * @return Array con los datos del recurso
	 */
	public function buscarRecurso($codrecursoies){
	    $this->informacioniesTable = new Instituciones_Model_DbTable_Recursosies();
		return $this->informacioniesTable->find($codrecursoies)->current()->toArray();
	}
	/**
	 * Elimina un recurso de una IES
	 * @param integer $codrecursoies Código del recurso
	 */
	
	public function eliminarRecurso($codrecursoies){
	    $this->informacioniesTable = new Instituciones_Model_DbTable_Recursosies();
	    $this->informacioniesTable->delete("codrecursoies={$codrecursoies}");
	}
	/**
	 * Busca los recursos de una IES
	 * @param integer $codrecursoies Código de la IES
	 * @param integer $subtiporecurso Código del recurso
	 * @return Array con los datos de recursos
	 */
	public function buscarRecursosIES($codinstitucion,$subtiporecurso=1){
	    $this->informacioniesTable = new Instituciones_Model_DbTable_Recursosies();
		return $this->informacioniesTable->buscarRecursosIES($codinstitucion,$subtiporecurso);
	}
}
